package com.zhentao.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 参数定义DTO - 用于接收前端参数
 * @author zhentao
 * @date 2024-12-19
 */
@Data
public class ParamDefinitionDTO {
    
    /**
     * 参数键，全局唯一
     */
    @NotBlank(message = "参数键不能为空")
    private String paramKey;
    
    /**
     * 参数名称
     */
    @NotBlank(message = "参数名称不能为空")
    private String paramName;
    
    /**
     * 分类ID
     */
    @NotNull(message = "分类ID不能为空")
    private Long categoryId;
    
    /**
     * 数据类型：STRING、NUMBER、BOOLEAN、JSON
     */
    @NotBlank(message = "数据类型不能为空")
    private String dataType;
    
    /**
     * 默认值
     */
    private String defaultValue;
    
    /**
     * 取值范围，JSON格式存储
     */
    private String valueRange;
    
    /**
     * 参数详细描述
     */
    private String description;
    
    /**
     * 是否必填：1-是，0-否
     */
    private Integer isRequired = 0;
    
    /**
     * 是否系统参数：1-是，0-否
     */
    private Integer isSystem = 0;
    
    /**
     * 校验规则，JSON格式存储
     */
    private String validationRule;
    
    /**
     * 标签，逗号分隔
     */
    private String tags;
}